//
//  TFTableDataRequestProtocol.h
//  TFFoundation
//
//  Created by TFAppleWork-Summer on 2017/4/25.
//  Copyright © 2017年 TFAppleWork-Summer. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "TFRequest.h"

/**
 列表加载数据的方式
 */
typedef NS_ENUM(NSUInteger, TFTableLoadDataOptions) {
    
    /**
     加载数据的方式-重新加载当前页
     */
    TFTableLoadDataOptionReloadCurrentPage,
    /**
     加载数据的方式-从第一页开始重新加载
     */
    TFTableLoadDataOptionReload,
    /**
     加载数据的方式--加载更多
     */
    TFTableLoadDataOptionLoadMore,
};

/**
 列表请求类需要服从的协议
 */
@protocol TFTableDataRequestProtocol <NSObject>

@required;

/**
 默认起始页页码
 */
@property (nonatomic, assign) NSInteger startPageNumber;

/**
 当前请求的页数
 */
@property (nonatomic, assign) NSInteger pageNumber;

/**
 总页数
 
 @return NSInteger
 */
- (NSInteger)totalPage;

/**
 请求数据每页的页数
 */
@property (nonatomic, assign) NSInteger pageSize;

/**
 加载数据的方式
 */
@property (nonatomic, assign) TFTableLoadDataOptions loadDataOption;

/**
 获取的list数组
 
 @return NSArray
 */
- (NSArray *)listArray;

@optional;

/**
 列表中的数据模型对应的mapClassName.
 */
@property (nonatomic, strong) NSString *listDataMapClassName;


@end
